/*
 * @Description:Test01
 * 
 * @Author: 平常心
 * 
 * @Date: 2024-09-24 08:45:25
 * 
 * @LastEditors: 平常心
 * 
 * @LastEditTime: 2024-09-24 09:09:27
 */

/**
 * Test01
 */
public class Test01 {
  public static void main(String[] args) {
    // 通过匿名内部类实现接口
    ISleep sleep = new ISleep() {
      // 实现接口的方法
      @Override
      public void sleep() {
        // 重写sleep方法
        System.out.println("躺着睡");
      }
    };
    sleep.sleep();
    sleep.sleep();
    new ISleep() {
      // 实现接口的方法
      @Override
      public void sleep() {
        // 重写sleep方法
        System.out.println("趴着睡");
      }
    }.sleep();

    // 通过匿名内部类去实现抽象类
    MyClass myClass = new MyClass() {
      // 重写抽象方法
      @Override
      public void run() {
        System.out.println("重写run方法");
      }
    };
    myClass.run();
    myClass.test();

    // 简化写法 - 匿名对象只能使用一次，因为没有名字，无法再次访问
    new MyClass() {
      // 重写抽象方法
      @Override
      public void run() {
        System.out.println("简化：重写run方法");
      }
    }.run();

  }

}